home *** CD-ROM | disk | FTP | other *** search
- Subject: v07i020: ELM Update Kit, Part03/03
- Newsgroups: mod.sources
- Approved: mirror!rs
-
- Submitted by: Dave Taylor <taylor@hplabs.HP.COM>
- Mod.sources: Volume 7, Issue 20
- Archive-name: elm_update/Part03
-
- [ The shell scripts in this posting should be run on a clean copy of
- the ELM sources. Then run the "Configure.sh" script now provided,
- to build the Makefiles, etc. I suppose this is a good time to say
- that Dave said to ignore errors in unpacking Part 12 of the Volume
- 6 ELM distribution. -- r$ ]
-
- #!/bin/sh
- # This is a shell archive. Remove anything before this line,
- # then unpack it by saving it in a file and typing "sh file".
-
- # Exit status; set to 1 on "wc" errors or if would overwrite.
- STATUS=0
- # Contents: Edit3
-
- echo x - Edit3
- if test -f Edit3 ; then
- echo Edit3 exists, putting output in $$Edit3
- OUT=$$Edit3
- STATUS=1
- else
- OUT=Edit3
- fi
- sed 's/^XX//' > $OUT <<'@//E*O*F Edit3//'
- XX: Use /bin/sh
-
- XX# This is the automatically generated output of the AUTODIFF program after
- XX# being run on the two directories;
- XX# Old Directory: Elm-Posted
- XX# New Directory: Elm
-
- XX# Any problems with execution of this script should be reported to the
- XX# author of the program, Dave Taylor, at "hplabs!taylor". Thanks
-
- XX# first off, let's make sure we're running in SH
-
- XXexport PATH || (sh $0; exit $$)
-
- XX# next, let's ensure the user has "ed"...
-
- XXif [ ! -f /bin/ed ]
- XXthen
- XX echo I can\'t find /bin/ed\!
- XX exit 1
- XXfi
-
- XX# finally, let's get this show on the road!!
-
- XX#---------------------------------
- XX# File Elm/Configure.sh is new!
-
- XXecho File Elm/Configure.sh is new - extracting...
- XXif [ -f Configure.sh ]
- XXthen
- XX echo File \'Configure.sh\' is new, but you already have something called that\!
- XX echo I\'m going to move your file to \'Configure.sh.old\'...
- XX /bin/mv -f Configure.sh Configure.sh.old
- XXelse
- XX echo Extracting new file \'Configure.sh\'
- XXfi
-
- XXcat > Configure.sh << 'END_OF_FILE'
- XX#!/bin/sh
- XX#
- XX# Configure.sh, a shell script for configuring the Elm mail system for
- XX# your site and desires. This script uses some ideas ripped out
- XX# of the 'rn' install script. Thanks Larry!
- XX#
-
- XXexport PATH || (sh $0 ; kill $$)
-
- XXSHELL=/bin/sh
-
- XXSED1=/tmp/Elm.sed1
- XXSED2=/tmp/Elm.sed2
-
- XXif [ -f /bin/rm ]
- XXthen
- XX rm=/bin/rm
- XXelse
- XX rm=rm
- XXfi
-
- XX$rm -f $SED1 $SED2
- XXtouch $SED1 $SED2
- XXchmod 777 $SED1 $SED2
-
- XX# first test - is stdin still free for answering questions??
- XXif [ ! -t 0 ]
- XXthen
- XX echo "Please use 'sh Configure.sh' rather than 'sh < Configure.sh'"
- XX exit 1
- XXfi
-
- XX# next let's see what sorta echo flag we have here...
-
- XXif [ "`echo -n`" = "-n" ]
- XXthen
- XX nflag=""
- XX cflag="\\c"
- XXelse
- XX nflag="-n"
- XX cflag=""
- XXfi
-
- XX# now the intro blurb
-
- XXcat << END_OF_INTRO
-
- XX Elm Configuration Script, v2
- XX
- XX
- XX This is the configuration script for the Elm mail system. By using
- XX it rather than editing the "hdrs/sysdefs.h" file, it is hoped that
- XX the installation process will be considerably easier.
-
- XX On all questions, the value in [square brackets] is the default that
- XX will be used if you just press RETURN...
-
-
- XXEND_OF_INTRO
-
- XXecho "Trying to figure out what sort of OS you're on..."
-
- XX# next interesting part - figure out what OS we're on
-
- XXos_name=""
-
- XX$rm -f .osname
- XXtouch .osname
-
- XXcat << 'EOF' > .get_osname
-
- XXuname
-
- XXif [ $? != 0 ]
- XXthen
- XX if [ -f /vmunix ]
- XX then
- XX echo "bsd" > .osname
- XX else
- XX exit 0
- XX fi
- XXfi
-
- XXif [ "`uname -s`" != "" ]
- XXthen
- XX uname -s | tr '[A-Z]' '[a-z]' > .osname
- XXfi
-
- XXexit 0
- XX
- XXEOF
-
- XXsh .get_osname > /dev/null 2>&1
-
- XXif [ -f .osname ]
- XXthen
- XX os_name="`cat .osname`"
- XX $rm -f .osname
- XXfi
-
- XX$rm -f .get_osname
-
- XXif [ "$os_name" = "" ]
- XXthen
- XX cat << THE_END
-
- XXI cannot figure out what sort of operating system you're running here. Please
- XXtype in the NAME of the OS you're running or the name of the machine you're
- XXTHE_END
-
- XX echo $nflag "running on. I'll check the name in a minute : " $cflag
-
- XX read junk morejunk
- XX
- XX os_name=`echo $junk | tr '[A-Z]' '[a-z]'`
- XXfi
-
- XXOS_FLAG="HUH??"
-
- XXwhile [ "$OS_FLAG" = "HUH??" ]
- XXdo
-
- XX case $os_name in
- XX hp) NAME="HP-UX"; OS_FLAG="" ;;
- XX hp-ux) NAME="HP-UX"; OS_FLAG=""; ;;
- XX vax) NAME="BSD"; OS_FLAG="BSD"; ;;
- XX vaxen) NAME="BSD"; OS_FLAG="BSD"; ;;
- XX bsd) NAME="BSD"; OS_FLAG="BSD"; ;;
- XX uts) NAME="UTS"; OS_FLAG="UTS"; ;;
- XX sun) NAME="Sun BSD"; OS_FLAG="SUN"; ;;
- XX pyramid) NAME="Pyramid BSD"; OS_FLAG="PYRAMID"; ;;
- XX amdahl) NAME="UTS"; OS_FLAG="UTS"; ;;
- XX v5) NAME="System V"; OS_FLAG=""; ;;
- XX v7) NAME="System VII"; OS_FLAG=""; ;;
- XX eunice) NAME="Eunice"; OS_FLAG=""; ;;
- XX convergent) NAME="Convergent BSD"; OS_FLAG="BSD"; ;;
- XX berkeley) NAME="BSD"; OS_FLAG="BSD"; ;;
- XX ultrix) cat << THE_END
-
- XXI know that this is a breed of Unix, but I don't know what TYPE of OS it
- XXis like. Please enter the NAME of the OS that this is most like (e.g. "BSD")
- XXand we'll go from there.
-
- XXTHE_END
- XX ;;
- XX xenix) cat << THE_END
-
- XXYou're outta luck. Xenix (dumb OS that it is only allows 6 character
- XXidentifier names. You'll need to go in and LABORIOUSLY translate all the
- XXVERY LONG identifier names to the right length. The correct response to
- XXseeing this message is to call your vendor and get ANGRY!!!!
-
- XXMeanwhile, we might as well just quit here. Sorry.
- XXTHE_END
- XXexit 1
- XX ;;
- XX *) cat << THE_END
-
- XXI don't know what OS you're specifying! The only one's I know of are;
-
- XX HP-UX, BSD, UTS, Eunice, Xenix, Ultrix, V5, and V7
-
- XXI also know the machines
-
- XX HP, Amdahl, Sun, Vaxen, Convergent and Pyramid
-
- XXIf you're not among this list, you'll need to pick the closest OS name.
- XXTHE_END
-
- XX echo " "
- XX echo $nflag "Please choose again: " $cflag
- XX read os_name
- XX ;;
- XX esac
-
- XXdone
-
- XXecho " "
- XXecho " "
- XXecho you\'re on the following version of Unix: $NAME
-
- XXcase $OS_FLAG in
- XX BSD) echo "s/>os-define</-DBSD/" >> $SED2
- XX echo "s/>lib2</-lcurses/" >> $SED2
- XX ;;
-
- XX SUN) echo "s/>os-define</"-DBSD -DSUN"/" >> $SED2
- XX echo "s/>lib2</-lcurses/" >> $SED2
- XX ;;
-
- XX PYRAMID) echo "s/>os-define</"-DBSD -DNO_VAR_ARGS"/" >> $SED2
- XX echo "s/>lib2</-lcurses/" >> $SED2
- XX ;;
-
- XX *) echo "s/>os-define<//" >> $SED2
- XX echo "s/>lib2<//" >> $SED2
- XX ;;
-
- XXesac
-
- XXecho " "
- XXecho "Now we can get down to those questions..."
- XXecho " "
-
- XXcat << THE_END
-
-
- XXDoes your site receive mail with valid "Reply-To:" and "From:" fields in
- XXthe messages? (usually the answer is "no" since not all sites on the network
- XXrewrite the addresses, and this'll usually cause the return mail to fail).
- XXTHE_END
-
- XXanswer="no"
- XXecho $nflag "Are the addresses valid (y/n) [no] ?" $cflag
- XXread answer
-
- XXif [ "$answer" != "y" -a "$answer" != "yes" ]
- XXthen
- XX echo \
- XX"s/#define USE_EMBEDDED_ADDRESSES/\/** #define USE_EMBEDDED_ADDRESSES **\//" \
- XX >> $SED1
- XXfi
-
- XXcat << THE_END
-
- XX-------------------------------------------------------------------------------
-
- XXHow about memory? If you have a lot, you can enter a fairly large number
- XXfor the next few questions...if not, you'll probably want to enter the
- XXsuggested small-system values. (This applies to the speed of the swapping
- XXon your system too - if you're on a FAST system, use the big values!)
-
- XXFirst, how many messages should be allowed in a single folder? (the suggested
- XXvalues are 1000 for blindly fast systems, 500 for average systems and 100 for
- XXTHE_END
-
- XXecho $nflag "slow systems). Number of messages [500] ? " $cflag
-
- XXmax_headers=NONE
-
- XXwhile [ "$max_headers" = "NONE" ]
- XXdo
- XX read junk
-
- XX if [ "$junk" = "" ]
- XX then
- XX junk=500
- XX fi
-
- XX if [ $junk -gt 1000 -o $junk -lt 50 ]
- XX then
- XX echo "I think a value of $junk is pretty strange. You better answer this"
- XX echo "question again..."
- XX echo " "
- XX echo $nflag "How many messages per folder [500] ? " $cflag
- XX read junk
- XX else
- XX max_headers=$junk
- XX echo "s/>500</$max_headers/" >> $SED1
- XX fi
- XX
- XX if [ $junk -lt 200 ]
- XX then
- XX system_size="small"
- XX elif [ $junk -lt 750 ]
- XX then
- XX system_size="normal"
- XX else
- XX system_size="big"
- XX fi
- XXdone
-
- XXcase $system_size in
- XX small) default=223; ;;
- XX normal) default=503; ;;
- XX big) default=739; ;;
- XXesac
-
- XXecho " "
-
- XXmax_saliases="NONE"
-
- XXwhile [ "$max_saliases" = "NONE" ]
- XXdo
-
- XX echo $nflag "Max number of system aliases available [$default] ? " $cflag
-
- XX read junk
-
- XX if [ "$junk" = "" ]
- XX then
- XX junk=$default
- XX fi
-
- XX if [ $junk -lt 50 -o $junk -gt 1000 ]
- XX then
- XX echo "Pretty far out value for this question! I think you should reconsider"
- XX echo "your answer and try this question again..."
- XX echo " "
- XX else
- XX max_saliases=$junk
- XX echo "s/>503</$max_saliases/" >> $SED1
- XX fi
- XXdone
-
- XXcase $system_size in
- XX small) default=127; ;;
- XX normal) default=251; ;;
- XX big) default=503; ;;
- XXesac
-
- XXmax_ualiases="NONE"
-
- XXwhile [ "$max_ualiases" = "NONE" ]
- XXdo
-
- XX echo $nflag "Max number of user aliases available [$default] ? " $cflag
-
- XX read junk
-
- XX if [ "$junk" = "" ]
- XX then
- XX junk=$default
- XX fi
-
- XX if [ $junk -lt 50 -o $junk -gt 1000 ]
- XX then
- XX echo "Pretty far out value for this question! I think you should reconsider"
- XX echo "your answer and try this question again..."
- XX echo " "
- XX else
- XX max_ualiases=$junk
- XX echo "s/>251</$max_ualiases/" >> $SED1
- XX fi
- XXdone
-
- XXcase $system_size in
- XX small) default=50; ;;
- XX normal) default=150; ;;
- XX big) default=150; ;;
- XXesac
-
- XXmax_in_weedlist="NONE"
-
- XXwhile [ "$max_in_weedlist" = "NONE" ]
- XXdo
-
- XX echo $nflag "Max number of headers in weedout list [$default] ? " $cflag
-
- XX read junk
-
- XX if [ "$junk" = "" ]
- XX then
- XX junk=$default
- XX fi
-
- XX if [ $junk -lt 10 -o $junk -gt 200 ]
- XX then
- XX echo "Pretty strange answer to this question! I think you should reconsider"
- XX echo "and try this question again..."
- XX echo " "
- XX else
- XX max_in_weedlist=$junk
- XX echo "s/>150</$max_in_weedlist/" >> $SED1
- XX fi
- XXdone
-
- XXcat << THE_END
-
- XXThe next pair of questions have to do with what to do when another program has
- XXlocked a mailbox...
-
- XXFirst, how many times should the program check for the removal of the lock
- XXTHE_END
-
- XXdefault=6
-
- XXmax_attempts="NONE"
-
- XXwhile [ "$max_attempts" = "NONE" ]
- XXdo
-
- XX echo $nflag "file before giving up? [6] " $cflag
-
- XX read junk
-
- XX if [ "$junk" = "" ]
- XX then
- XX junk=$default
- XX fi
-
- XX if [ $junk -lt 3 -o $junk -gt 10 ]
- XX then
- XX echo \
- XX"The recommended range is 3-10 ...Number of times to check lock"
- XX else
- XX max_attempts=$junk
- XX echo "s/>6</$max_attempts/" >> $SED1
- XX fi
- XXdone
-
- XXecho " "
- XXanswer="no"
- XXecho $nflag "Should it REMOVE the lockfile after $max_attempts checks [no] ?" \
- XX $cflag
- XXread answer
-
- XXif [ "$answer" != "y" -a "$answer" != "yes" ]
- XXthen
- XX echo \
- XX"s/#define REMOVE_AT_LAST/\/** #define REMOVE_AT_LAST **\//" \
- XX >> $SED1
- XXfi
-
- XXif [ "$NAME" = "BSD" ]
- XXthen
- XX ps="ps -cax"
- XXelse
- XX ps="ps -ef"
- XXfi
-
- XXecho " "
- XXecho " "
- XXecho "poking about a bit.."
-
- XXif [ "`$ps | grep sendmail | grep -v grep`" != "" ]
- XXthen
- XX echo "You're running sendmail. Well done, I guess..."
- XX echo "s/\/\*\* #define DONT_ADD_FROM \*\*\//#define DONT_ADD_FROM/" \
- XX >> $SED1
- XX echo \
- XX "s/#define USE_DOMAIN/\/** #define USE_DOMAIN **\//" \
- XX >> $SED1
- XXelse
-
- XX cat << THE_END
-
- XXSince you're not running sendmail, should I check local user entered addresses
- XXTHE_END
-
- XXanswer="yes"
- XXecho $nflag "against the valid mailboxes on this system [yes] ? " $cflag
- XXread answer
-
- XXif [ "$answer" != "y" -a "$answer" != "yes" -a "$answer" != "" ]
- XXthen
- XX echo \
- XX"s/#define NOCHECK_VALIDNAME/\/** #define NOCHECK_VALIDNAME **\//" \
- XX >> $SED1
- XXfi
-
- XXcat << THE_END
-
- XXAre you running a machine where you want to have a domain name appended to the
- XXTHE_END
-
- XXanswer="yes"
- XXecho $nflag "hostname on outbound mail [no] ? " $cflag
- XXread answer
-
- XXif [ "$answer" != "y" -a "$answer" != "yes" ]
- XXthen
- XX echo \
- XX "s/#define USE_DOMAIN/\/** #define USE_DOMAIN **\//" \
- XX >> $SED1
- XXelse
- XX echo " "
- XX echo $nflag "Enter the domain name (include leading '.') : " $cflag
- XX read answer
- XX echo "s/<enter your domain here>/$answer/" >> $SED1
- XXfi
-
- XXfi
-
- XX# next let's see if we can find the vfork command on this system..
-
- XXcat << EOF > .test.c
- XXmain()
- XX{
- XX (void) vfork();
- XX}
- XXEOF
-
- XXcat << EOF > .vfork
- XXcc .test.c
- XXEOF
-
- XXsh .vfork > .log 2>& 1
-
- XXif [ "`wc -l .log`" -eq "0" ]
- XXthen
- XX echo "You have virtual memory system calls available. Cool..."
- XXelse
- XX cat << THE_END
-
- XXYour machine doesn't seem to have the vfork command available. Should I assume
- XXTHE_END
-
- XX answer="no"
- XX echo $nflag "you have it, anyway [no] ? " $cflag
- XX read answer
-
- XXif [ "$answer" != "y" -a "$answer" != "yes" ]
- XX then
- XX echo "s/\/\*\* #define NO_VM \*\*\//#define NO_VM/" >> $SED1
- XX fi
- XXfi
-
- XX$rm -f a.out .test.c .vfork .log
-
- XX# next let's see if we have the gethostname() system call...
-
- XXcat << EOF > .test.c
- XXmain()
- XX{
- XX (void) gethostname();
- XX}
- XXEOF
-
- XXcat << EOF > .hostname
- XXcc .test.c
- XXEOF
-
- XXsh .hostname > .log 2>& 1
-
- XXif [ "`wc -l .log`" -eq "0" ]
- XXthen
- XX echo "You have the 'gethostname()' system call..."
- XXelse
- XX echo "s/\/\*\* #define NEED_GETHOSTNAME \*\*\//#define NEED_GETHOSTNAME/" \
- XX >> $SED1
- XXfi
-
- XX$rm -f a.out .test.c .hostname .log
-
- XX# next let's see if we have long variable names...
-
- XXcat << EOF > .test.c
- XXmain()
- XX{
- XX int this_is_a_long_variable;
-
- XX (void) this_is_a_long_variable_routine_name();
- XX
- XX}
- XXthis_is_a_long_variable_routine_name() { }
- XXEOF
-
- XXcat << EOF > .varnames
- XXcc .test.c
- XXEOF
-
- XXsh .varnames > .log 2>& 1
-
- XXif [ "`wc -l .log`" -eq "0" ]
- XXthen
- XX echo "You have long variable names. Well done!!!!!"
- XXelse
- XX echo "How embarassing. Your C compiler doesn't support long variables..."
- XX echo "s/\/\*\* #define SHORTNAMES \*\*\//#define SHORTNAMES/" \
- XX >> $SED1
- XXfi
-
- XX$rm -f a.out .test.c .varname .log
-
- XXcat << THE_END
-
- XXWhen given a machine that you talk to directly, should the 'pathalias' route to
- XXTHE_END
-
- XXanswer="no"
- XXecho $nflag "the machine be used instead [no] ? " $cflag
- XXread answer
-
- XXif [ "$answer" != "y" -a "$answer" != "yes" ]
- XXthen
- XX echo \
- XX "s/#define LOOK_CLOSE_AFTER_SEARCH/\/** #define LOOK_CLOSE_AFTER_SEARCH **\//" \
- XX >> $SED1
- XXfi
-
- XXanswer="yes"
- XXecho " "
- XXecho $nflag "Is the preferred address notation 'user@host' [yes] ?" $cflag
- XXread answer
-
- XXif [ "$answer" != "y" -a "$answer" != "yes" -a "$answer" != "" ]
- XXthen
- XX echo \
- XX "s/#define INTERNET_ADDRESS_FORMAT/\/** #define INTERNET_ADDRESS_FORMAT **\//" \
- XX >> $SED1
- XXfi
-
- XXecho " "
- XXanswer="yes"
- XXecho $nflag "Am I going to be running as a setgid program [yes] ? "$cflag
- XXread answer
-
- XXif [ "$answer" != "y" -a "$answer" != "yes" -a "$answer" != "" ]
- XXthen
- XX echo answer is currently equal to \"$answer\"
- XX echo \
- XX "s/#define SAVE_GROUP_MAILBOX_ID/\/** #define SAVE_GROUP_MAILBOX_ID **\//" \
- XX >> $SED1
- XXfi
- XX
- XXcat << THE_END
-
-
- XXFor any of the questions after this point, you can press RETURN if the
- XXquestions doesn't apply, or there's no reasonable answer...
-
- XXTHE_END
-
- XXif [ ! -f /usr/lib/nmail.paths ]
- XXthen
- XX echo $nflag "Where does the output of pathalias live ? " $cflag
- XX read answer
-
- XX if [ "$answer" != "" ]
- XX then
- XX echo "s^/usr/lib/nmail.paths^$answer^" >> $SED1
- XX fi
- XXfi
- XX
- XXif [ ! -f /usr/lib/domains ]
- XXthen
- XX echo $nflag "Where does the 'domains' file live ? " $cflag
- XX read answer
-
- XX if [ "$answer" != "" ]
- XX then
- XX echo "s^/usr/lib/domains^$answer^" >> $SED1
- XX fi
- XXfi
-
- XXif [ ! -f /usr/lib/uucp/L.sys ]
- XXthen
- XX echo $nflag "Where does the 'L.sys' file live ? " $cflag
- XX read answer
-
- XX if [ "$answer" != "" ]
- XX then
- XX echo "s^/usr/lib/uucp/L.sys^$answer^" >> $SED1
- XX fi
- XXfi
- XX
- XXif [ ! -d /tmp ]
- XXthen
- XX echo $nflag "/tmp isn't a directory! What should I use?? " $cflag
- XX read answer
-
- XX if [ "$answer" != "" ]
- XX then
- XX echo "s^/tmp^$answer^" >> $SED1
- XX fi
- XXfi
-
- XXif [ ! -f /usr/ucb/vi -a "$os_name" = "BSD" ]
- XXthen
- XX echo $nflag "I can't find the 'vi' editor! Where is it? " $cflag
- XX read answer
-
- XX if [ "$answer" != "" ]
- XX then
- XX echo "s^/usr/ucb/vi^$answer^" >> $SED1
- XX fi
- XXelif [ ! -f /usr/bin/vi -a "$os_name" = "" ]
- XXthen
- XX echo $nflag \
- XX "I can't find the 'vi' editor! Where is it? " $cflag
- XX read answer
-
- XX if [ "$answer" != "" ]
- XX then
- XX echo "s^/usr/bin/vi^$answer^" >> $SED1
- XX fi
- XXfi
-
- XXif [ ! -d /usr/spool/mail -a "$os_name" = "BSD" ]
- XXthen
- XX echo $nflag "I can't find your inbound mail directory! Where is it? " $cflag
- XX read answer
-
- XX if [ "$answer" != "" ]
- XX then
- XX echo "s^/usr/spool/mail^$answer^" >> $SED1
- XX fi
- XXelif [ ! -d /usr/mail -a "$os_name" = "" ]
- XXthen
- XX echo $nflag "I can't find your inbound mail directory! Where is it? " $cflag
- XX read answer
-
- XX if [ "$answer" != "" ]
- XX then
- XX echo "s^/usr/mail^$answer^" >> $SED1
- XX fi
- XXfi
-
- XXif [ ! -f /bin/rm ]
- XXthen
- XX echo $nflag "Where's the 'rm' program? " $cflag
- XX read answer
-
- XX if [ "$answer" != "" ]
- XX then
- XX echo "s^/bin/rm^$answer^" >> $SED1
- XX fi
- XXfi
-
- XXif [ ! -f /bin/cat ]
- XXthen
- XX echo $nflag "Where's the 'cat' program? " $cflag
- XX read answer
-
- XX if [ "$answer" != "" ]
- XX then
- XX echo "s^/bin/rm^$answer^" >> $SED1
- XX fi
- XXfi
- XX
- XXif [ ! -f /dev/rct ]
- XXthen
- XX if [ ! -f /dev/rmt ]
- XX then
- XX echo $nflag "What's the name of your remote-tape unit? " $cflag
- XX read answer
-
- XX if [ "$answer" = "" ]
- XX then
- XX echo "s^>tapeunit<^unknown-remote-tape-unit^" >> $SED2
- XX else
- XX if [ ! -f $answer ]
- XX then
- XX if [ -f /dev/$answer ]
- XX then
- XX echo "s^>tapeunit<^/dev/$answer^" >> $SED2
- XX else
- XX echo \
- XX "I can't find either $answer or /dev/$answer. I'll set it to junk"
- XX echo "s^>tapeunit<^unknown-remote-tape-unit^" >> $SED2
- XX fi
- XX else
- XX echo "s^>tapeunit<^$answer^" >> $SED2
- XX fi
- XX fi
- XX else
- XX echo "s^>tapeunit<^/dev/rmt^" >> $SED2
- XX fi
- XXelse
- XX echo "s^>tapeunit<^/dev/rct^" >> $SED2
- XXfi
-
- XXif [ ! -d /usr/local/bin ]
- XXthen
- XX echo $nflag "Where do you want the system software installed? " $cflag
- XX read answer
-
- XX if [ "$answer" = "" ]
- XX then
- XX echo "s^>dest-dir<^unknown-destination-directory^" >> $SED2
- XX else
- XX if [ -d $answer ]
- XX then
- XX echo "s^>dest-dir<^$answer^" >> $SED2
- XX else
- XX echo "I don't know what you're talking about. I'll set it to junk"
- XX echo "s^>dest-dir<^unknown-destination-directory^" >> $SED2
- XX fi
- XX fi
- XXelse
- XX echo "s^>dest-dir<^/usr/local/bin^" >> $SED2
- XXfi
-
- XXif [ ! -f /usr/bin/troff ]
- XXthen
- XX if [ ! -f /usr/local/bin/troff ]
- XX then
- XX if [ ! -f /usr/contrib/bin/troff ]
- XX then
- XX if [ ! -f /usr/ucb/troff ]
- XX then
- XX if [ ! -f /bin/troff ]
- XX then
- XX echo $nflag "Where does the 'troff' program live? " $cflag
- XX read answer
-
- XX if [ "$answer" = "" ]
- XX then
- XX echo "s/>troff</nroff/" >> $SED2
- XX else
- XX if [ -f $answer ]
- XX then
- XX echo "s^>troff<^$answer^" >> $SED2
- XX troff=$answer
- XX else
- XX echo "Still can't find it. I'll set it to \"nroff\" instead."
- XX echo "s/>troff</nroff/" >> $SED2
- XX fi
- XX fi
- XX else
- XX echo "s^>troff<^/bin/troff^" >> $SED2
- XX troff=/bin/troff
- XX fi
- XX else
- XX echo "s^>troff<^/usr/ucb/troff^" >> $SED2
- XX troff=/usr/ucb/troff
- XX fi
- XX else
- XX echo "s^>troff<^/usr/contrib/bin/troff^" >> $SED2
- XX troff=/usr/contribbin/troff
- XX fi
- XX else
- XX echo "s^>troff<^/usr/local/bin/troff^" >> $SED2
- XX troff=/usr/local/bin/troff
- XX fi
- XXelse
- XX echo "s^>troff<^/usr/bin/troff^" >> $SED2
- XX troff=/usr/bin/troff
- XXfi
-
- XX# phew!
-
- XXtroffdir=`dirname $troff`
-
- XXif [ -f $troffdir/tbl ]
- XXthen
- XX echo "s^>tbl<^$troffdir/tbl^" >> $SED2
- XXelse
- XX echo $nflag "Where does the 'tbl' program live? " $cflag
- XX read answer
-
- XX if [ "$answer" = "" ]
- XX then
- XX echo "s^>tbl<^cat^" >> $SED2
- XX elif [ -f $answer ]
- XX then
- XX echo "s^>tbl<^$answer^" >> $SED2
- XX else
- XX echo "I can't find that either. I'll just set it to junk..."
- XX echo "s^>tbl<^cat^" >> $SED2
- XX fi
- XXfi
-
- XXif [ -f /bin/cc ]
- XXthen
- XX echo "s^>cc<^/bin/cc^" >> $SED2
- XXelse
- XX echo $nflag "Where does the 'C' compiler live? " $cflag
- XX read answer
-
- XX if [ "$answer" = "" ]
- XX then
- XX cat << THE_END
-
- XXI hope you realize that without a "C" compiler there's no point in doing any
- XXof this. If we can't compile anything then this is just so much disk filler.
-
- XXIn fact, thinking about it, let's just quit right now.
-
- XXTHE_END
-
- XX exit 1
- XX fi
-
- XX if [ -f $answer ]
- XX then
- XX echo "s^>cc<^$answer^" >> $SED2
- XX else
- XX cat << THE_END
-
- XXI couldn't find what you specified, pal. I hope you realize that without a
- XX"C" compiler there's no point in doing any of this. If we can't compile
- XXanything then this system is just so much disk filler.
-
- XXIn fact, thinking about it, let's just quit right now.
-
- XXTHE_END
- XX exit 1
- XX fi
- XXfi
-
- XXecho "s^>rm<^$rm -f^" >> $SED2
-
- XXif [ -f /bin/mv ]
- XXthen
- XX echo "s^>mv<^/bin/mv -f^" >> $SED2
- XXelse
- XX echo "s^>mv<^mv -f^" >> $SED2
- XXfi
-
- XXif [ -f /bin/cp ]
- XXthen
- XX echo "s^>cp<^/bin/cp^" >> $SED2
- XXelse
- XX echo "s^>cp<^cp^" >> $SED2
- XXfi
-
- XXcat << END
-
- XXThat's it. Just have to do some patching up and such...hang loose for a
- XXminute or two, please...
-
- XXEND
-
- XX# process the three Makefiles accordingly...
-
- XXecho "1 - processing the file \"Makefile\"..."
- XXcat Makefile.mstr | sed -f $SED2 > Makefile
-
- XXecho "2 - processing the file \"src/Makefile\"..."
- XXcat src/Makefile.mstr | sed -f $SED2 > src/Makefile
-
- XXecho "3 - processing the file \"utils/Makefile\"..."
- XXcat utils/Makefile.mstr | sed -f $SED2 > utils/Makefile
-
- XX# then filter the sysdefs file through the sed script we've created!
-
- XXecho "Finally, processing the file \"hdrs/sysdefs.h\"..."
-
- XXif [ -f hdrs/sysdefs.h ]
- XXthen
- XX mv hdrs/sysdefs.h hdrs/sysdefs.old
- XXfi
-
- XXcat hdrs/sysdefs.master | sed -f $SED1 > hdrs/sysdefs.h
-
- XXecho Done\!
-
- XX$rm -f $SED1 $SED2
- XXexit 0
- XXEND_OF_FILE
-
- XXchars=`cat Configure.sh | wc -c`
-
- XXif [ $chars -ne 19263 ]
- XXthen
- XX echo File damaged in transit...should be 19263 bytes, is $chars instead
- XX echo I suggest you check it closely...
- XXfi
-
- XX#---------------------------------
- XX# File Elm/Makefile.mstr is new!
-
- XXecho File Elm/Makefile.mstr is new - extracting...
- XXif [ -f Makefile.mstr ]
- XXthen
- XX echo File \'Makefile.mstr\' is new, but you already have something called that\!
- XX echo I\'m going to move your file to \'Makefile.mstr.old\'...
- XX /bin/mv -f Makefile.mstr Makefile.mstr.old
- XXelse
- XX echo Extracting new file \'Makefile.mstr\'
- XXfi
-
- XXcat > Makefile.mstr << 'END_OF_FILE'
- XX#
- XX# Makefile for the entire ELM mail system
- XX#
- XX# (C) Copyright 1986, Dave Taylor
- XX#
- XX# Last modification: July 14th, 1986
-
- XXSHELL=/bin/sh
- XX
- XX#########################
- XX#
- XX# The following entries need to be customized for the local site:
- XX# The first is the address of the data-cassette drive to allow
- XX# easy tape copies to be made, and the second is the final location
- XX# that all the software should be installed in when 'make install'
- XX# is run.
- XX#
- XX#########################
-
- XXTAPE= >tapeunit<
- XXDEST= >dest-dir<
-
- XXLIB= /usr/local/lib
- XXMAN= /usr/man/man1
- XXCATMAN= /usr/man/cat1
- XXSHAR= /usr/local/bin/shar -s 60000
-
- XX# See the Configuration Guide for further information on this stuff;
- XX#
- XX# if on a Berkeley system:
- XX# DEFINE = -DBSD
- XX# LIB2 = -lcurses
- XX# else if on a UTS system:
- XX# DEFINE = -DUTS
- XX# LIB2 = -la
- XX# else if on a Sun system:
- XX# DEFINE = "-DBSD -DSUN"
- XX# LIB2 = -lcurses
- XX# else if on a Pyramid system:
- XX# DEFINE = "-DBSD -DNO_VAR_ARGS"
- XX# LIB2 = -lcurses
- XX# otherwise;
-
- XX DEFINE = >os-define<
- XX LIB2 = >lib2<
-
- XX# If you're on ACSnet (Australia) you'll want to define
- XX# the following;
-
- XX# DEFINE="${DEFINE} -DACSNET"
-
- XX#########################
-
- XXLIBS= -ltermcap
- XXCFLAGS= -O
- XXCC= >cc<
- XXRM= >rm<
- XXMV= >mv<
- XXCP= >cp<
-
- XX# if you want to use "nroff", change this...
-
- XXFORMATTER = >troff<
- XXTBL = >tbl<
-
- XXDOCS= Config.guide Users.guide Ref.guide Alias.guide elm.1 from.1 \
- XX printmail.1 newalias.1 newmail.1 answer.1 messages.1 \
- XX grabalias.1 fastmail.1 readmsg.1 autoreply.1 wnewmail.1 \
- XX trim-headers.1
-
- XXUTILSRC= utils/answer.c utils/arepdaemon.c utils/autoreply.c \
- XX utils/fastmail.c utils/from.c utils/newalias.c \
- XX utils/newmail.c utils/printmail.c utils/readmsg.c utils/wnewmail.c \
- XX utils/trim-headers
-
- XXELMSRC= src/addr_utils.c src/alias.c src/aliasdb.c src/aliaslib.c \
- XX src/args.c src/bounceback.c src/connect_to.c src/curses.c \
- XX src/date.c src/delete.c src/domains.c src/edit.c src/encode.c \
- XX src/errno.c src/file.c src/file_utils.c src/fileio.c src/hdrconfg.c \
- XX src/help.c src/initialize.c src/input_utils.c src/leavembox.c \
- XX src/mailmsg1.c src/mailmsg2.c src/mailtime.c src/mkhdrs.c \
- XX src/elm.c src/newmbox.c src/notesfile.c src/opt_utils.c \
- XX src/output_utils.c src/pattern.c src/quit.c src/read_rc.c \
- XX src/remail.c src/reply.c src/return_addr.c src/savecopy.c \
- XX src/screen.c src/showmsg.c src/signals.c src/softkeys.c \
- XX src/strings.c src/syscall.c src/utils.c src/validname.c \
- XX src/calendar.c src/sort.c src/getopt.c src/string2.c \
- XX src/builtin.c
-
- XX################
-
- XXall: bin/elm utils
- XX @echo Everything is up to date!
-
- XXdocumentation: doc/Users.fmtd doc/Ref.fmtd doc/Config.fmtd doc/Alias.fmtd
- XX
- XXdoc/Users.fmtd: doc/Users.guide
- XX ${TBL} doc/Users.guide | ${FORMATTER} -mm > doc/Users.fmtd
-
- XXdoc/Ref.fmtd: doc/Ref.guide
- XX ${FORMATTER} -mm doc/Ref.guide > doc/Ref.fmtd
-
- XXdoc/Config.fmtd: doc/Config.guide
- XX ${TBL} doc/Config.guide | ${FORMATTER} -mm > doc/Config.fmtd
-
- XXdoc/Alias.fmtd: doc/Alias.guide
- XX ${FORMATTER} -mm doc/Alias.guide > doc/Alias.fmtd
-
- XXbin/elm: ${ELMSRC}
- XX cd src;make DEFINE=${DEFINE} LIB2=${LIB2} ../bin/elm; cd ..
- XX
- XXbin/utils: ${UTILSRC}
- XX cd utils; make DEFINE=${DEFINE} LIBS=${LIB2} all; cd ..
- XX @touch bin/utils
-
- XXinstall: all
- XX ${CP} bin/elm ${DEST}/elm
- XX ${CP} bin/from ${DEST}/from
- XX ${CP} bin/newalias ${DEST}/newalias
- XX ${CP} bin/printmail ${DEST}/printmail
- XX ${CP} bin/fastmail ${DEST}/fastmail
- XX ${CP} bin/readmsg ${DEST}/readmsg
- XX ${CP} bin/newmail ${DEST}/newmail
- XX ${CP} bin/wnewmail ${DEST}/wnewmail
- XX ${CP} bin/checkalias ${DEST}/checkalias
- XX ${CP} bin/messages ${DEST}/messages
- XX ${CP} bin/trim-headers ${DEST}/trim-headers
- XX ${CP} bin/arepdaemon ${DEST}/arepdaemon
- XX ${CP} bin/autoreply ${DEST}/autoreply
- XX ${RM} ${CATMAN}/elm.1 ${CATMAN}/from.1 \
- XX ${CATMAN}/newalias.1 ${CATMAN}/printmail.1 \
- XX ${CATMAN}/fastmail.1 ${CATMAN}/elm.1 \
- XX ${CATMAN}/readmsg.1 ${CATMAN}/answer.1 \
- XX ${CATMAN}/newmail.1 ${CATMAN}/checkalias.1 \
- XX ${CATMAN}/autoreply.1 ${CATMAN}/wnewmail.1 \
- XX ${CATMAN}/messages.1 ${CATMAN}/trim-headers.1
- XX ${CP} doc/elm.1 ${MAN}/elm.1
- XX ${CP} doc/from.1 ${MAN}/from.1
- XX ${CP} doc/newalias.1 ${MAN}/newalias.1
- XX ${CP} doc/printmail.1 ${MAN}/printmail.1
- XX ${CP} doc/fastmail.1 ${MAN}/fastmail.1
- XX ${CP} doc/checkalias.1 ${MAN}/checkalias.1
- XX ${CP} doc/messages.1 ${MAN}/messages.1
- XX ${CP} doc/trim-headers.1 ${MAN}/trim-headers.1
- XX ${CP} doc/autoreply.1 ${MAN}/autoreply.1
- XX ${CP} doc/answer.1 ${MAN}/answer.1
- XX ${CP} doc/readmsg.1 ${MAN}/readmsg.1
- XX ${CP} doc/newmail.1 ${MAN}/newmail.1
- XX ${CP} doc/wnewmail.1 ${MAN}/wnewmail.1
- XX ${CP} doc/helpfile ${LIB}/elm-help.main
- XX chmod a+rx ${DEST}/from ${DEST}/newalias \
- XX ${DEST}/printmail ${DEST}/fastmail \
- XX ${DEST}/readmsg ${DEST}/trim-headers \
- XX ${DEST}/checkalias ${DEST}/autoreply \
- XX ${DEST}/newmail ${DEST}/wnewmail ${DEST}/messages
- XX chgrp mail ${DEST}/elm
- XX chmod 2755 ${DEST}/elm
- XX @echo Done with installation.
-
- XXrmt-install: remote-defined
- XX @echo " "
- XX @echo Warning: This assumes "install" has been done on the
- XX @echo " remote machine. If this is not the case you"
- XX @echo " better hit BREAK quickly!"
- XX @echo " "
- XX ${CP} ${REMOTE}${DEST}/elm ${DEST}/elm
- XX ${CP} ${REMOTE}${DEST}/from ${DEST}/from
- XX ${CP} ${REMOTE}${DEST}/newalias ${DEST}/newalias
- XX ${CP} ${REMOTE}${DEST}/printmail ${DEST}/printmail
- XX ${CP} ${REMOTE}${DEST}/fastmail ${DEST}/fastmail
- XX ${CP} ${REMOTE}${DEST}/readmsg ${DEST}/readmsg
- XX ${CP} ${REMOTE}${DEST}/wnewmail ${DEST}/wnewmail
- XX ${CP} ${REMOTE}${DEST}/newmail ${DEST}/newmail
- XX ${CP} ${REMOTE}${DEST}/checkalias ${DEST}/checkalias
- XX ${CP} ${REMOTE}${DEST}/messages ${DEST}/messages
- XX ${CP} ${REMOTE}${DEST}/arepdaemon ${DEST}/arepdaemon
- XX ${CP} ${REMOTE}${DEST}/autoreply ${DEST}/autoreply
- XX ${RM} ${CATMAN}/elm.1 \
- XX ${CATMAN}/from.1 \
- XX ${CATMAN}/newalias.1 \
- XX ${CATMAN}/printmail.1 \
- XX ${CATMAN}/fastmail.1 \
- XX ${CATMAN}/checkalias.1 \
- XX ${CATMAN}/autoreply.1 \
- XX ${CATMAN}/readmsg.1 \
- XX ${CATMAN}/answer.1 \
- XX ${CATMAN}/newmail.1 \
- XX ${CATMAN}/wnewmail.1 \
- XX ${CATMAN}/elm.1
- XX ${CP} ${REMOTE}${MAN}/elm.1 ${MAN}/elm.1
- XX ${CP} ${REMOTE}${MAN}/from.1 ${MAN}/from.1
- XX ${CP} ${REMOTE}${MAN}/newalias.1 ${MAN}/newalias.1
- XX ${CP} ${REMOTE}${MAN}/printmail.1 ${MAN}/printmail.1
- XX ${CP} ${REMOTE}${MAN}/fastmail.1 ${MAN}/fastmail.1
- XX ${CP} ${REMOTE}${MAN}/checkalias.1 ${MAN}/checkalias.1
- XX ${CP} ${REMOTE}${MAN}/autoreply.1 ${MAN}/autoreply.1
- XX ${CP} ${REMOTE}${MAN}/readmsg.1 ${MAN}/readmsg.1
- XX ${CP} ${REMOTE}${MAN}/answer.1 ${MAN}/answer.1
- XX ${CP} ${REMOTE}${MAN}/wnewmail.1 ${MAN}/wnewmail.1
- XX ${CP} ${REMOTE}${MAN}/newmail.1 ${MAN}/newmail.1
- XX ${CP} ${REMOTE}${LIB}/elm-help.main ${LIB}/elm-help.main
- XX chmod a+rx ${DEST}/from ${DEST}/newalias ${DEST}/printmail \
- XX ${DEST}/fastmail ${DEST}/readmsg \
- XX ${DEST}/checkalias ${DEST}/autoreply ${DEST}/wnewmail \
- XX ${DEST}/newmail ${DEST}/messages
- XX chgrp mail ${DEST}/elm
- XX chmod 2755 ${DEST}/elm
- XX @echo everything is installed based on files from ${REMOTE}
-
- XXsource:
- XX tar cvf ${TAPE} bin/makelisting utils/*.c src/*.c doc/* hdrs/* \
- XX Instructions Makefile UNIQ_SYMS README utils/Makefile src/Makefile \
- XX test/* utils/*.awk CHANGES Overview
-
- XX# Note that the production for SHAR assumes a pretty snazzy shar program
- XX# that can break down the output into a number of files as needed...
- XX# The current threshold is 60,000 bytes per file, for email/netnews
-
- XXshar:
- XX ${SHAR} *
-
- XXlint:
- XX lint ${UTILSRC} > lint.out
-
- XXlisting:
- XX @echo listing all source files
- XX @/bin/echo \\f > LISTING
- XX @echo adding file 'README'...
- XX @cat README >> LISTING
- XX @/bin/echo \\f >> LISTING
- XX @echo adding file 'Instructions...
- XX @cat Instructions >> LISTING
- XX @/bin/echo \\f >> LISTING
- XX @echo adding file 'Makefile'...
- XX @cat Makefile >> LISTING
- XX @bin/makelisting Makefile ${UTILSRC} src/Makefile src/*.c hdrs/*.h
- XX @echo LISTING generated.
-
- XXelm-listing:
- XX @echo listing just the ELM system source files
- XX @echo ' ' > src/LISTING
- XX @cd src ; make listing ; cd ..
- XX @echo LISTING generated \(in directory /src\).
-
- XXclean:
- XX @cd src ; make clean ; cd ..
- XX @cd utils; make clean ; cd ..
- XX @echo All spurious files removed
-
- XXelm: bin/elm
- XXutils: bin/utils
- XXutils/checkalias:
- XXutils/messages:
- XXdoc/Users.guide:
- XXdoc/Ref.guide:
- XXdoc/Alias.guide:
- XXdoc/Config.guide:
-
- XXremote-defined:
- XX @if ( "${REMOTE}" == "" ) then; \
- XX echo " " ; \
- XX echo "You need to define 'REMOTE' as the remote file system" ; \
- XX echo "for this particular command. The easiest way to do " ; \
- XX echo "this is to type:" ;\
- XX echo " make -f <makefile> REMOTE=<remote file system> rmt-install" ; \
- XX echo " " ; \
- XX endif
- XX @if ( "${REMOTE}" == "" ) exit 1
- XXEND_OF_FILE
-
- XXchars=`cat Makefile.mstr | wc -c`
-
- XXif [ $chars -ne 8850 ]
- XXthen
- XX echo File damaged in transit...should be 8850 bytes, is $chars instead
- XX echo I suggest you check it closely...
- XXfi
-
-
- XXecho done with autodiff, part 2
- XXexit 0
-
- XX\SHAR_EOF
- @//E*O*F Edit3//
- chmod u=rw,g=rw,o=rw $OUT
-
- echo Inspecting for damage in transit...
- temp=/tmp/sharin$$; dtemp=/tmp/sharout$$
- trap "rm -f $temp $dtemp; exit" 0 1 2 3 15
- cat > $temp <<\!!!
- 1276 4208 29970 Edit3
- !!!
- wc Edit3 | sed 's=[^ ]*/==' | diff -b $temp - >$dtemp
- if test -s $dtemp ; then
- echo "Ouch [diff of wc output]:"
- cat $dtemp
- STATUS=1
- elif test $STATUS = 0 ; then
- echo "No problems found."
- else
- echo "WARNING -- PROBLEMS WERE FOUND..."
- fi
- exit $STATUS
-